<?php

require_once(FILE_DB_STATSTATISTIEK);
require_once(FILE_DB_STATSTATIESTIEKINTERFACE);

/*
  --- PROJECT COFELY 2012, STATISTIEKENRAPPORT DATAKLASSE WPI--
 * @author: Leander Molegraaf
  @category: statistieken
  @name DbStatWPI

  @uses DbStatStatistiekInterface.php (interface)
  @see DbStatStatistiek

  @version 2.0.1
  datum: 10-05-2012

  BESCHRIJVING:
  Deze klasse initieerd de statistiek database klassen, door de profitcenters en gebruikers in te vullen met de juiste informatie.
  Het doet dit voor een WERKPLEKINSPECTIE

  WERKING:
  Deze klasse vereist 4 argumenten:
  - de maand van het begin van de periode
  - de jaar van het begin van de periode
  - de maand van het einde van de periode
  - de jaar van het einde van de periode
  OPMERKINGEN:
  - gebruik DbStatTBM.php voor een toolboxmeting, de functionaliteit is verder identiek.

  CHANGELOG:
  2.0.1:
  - comments gewijzigd
  - mogelijkheid toegevoegd om te zoeken in een specifieke timeframe
  - functie selectPersoonGegevens vernoemd naar selectDBGegevens, en private gemaakt

  2.0.2:
  - bug gefixed met betrekking tot wpiplichtigheid.
  - benaming verduidelijked
  - documentatie aangepast

  2.1:
  - selectDBGegevens aangepast zodat rekening wordt gehouden met de nieuwe lagen
  regio en regiobedrijf.
 */

class DbStatWPI extends DbStatStatistiek implements DbStatStatistiekInterface {

    private $WPIPlichtig; //int

    /**
     * constructor
     * @param int $beginFilterPeriodeMaand de maand vanaf wanneer gefilterd moet worden
     * @param int $beginFilterPeriodeJaar de jaar vanaf wanneer gefilterd moet worden
     * @param int $eindFilterPeriodeMaand de maand tot wanneer gefilterd moet worden
     * @param int $eindFilterPeriodeJaar de jaar tot wanneer gefilterd moet worden
     * @since Version 1.0
     */

    public function __construct($beginFilterPeriodeMaand, $beginFilterPeriodeJaar, $eindFilterPeriodeMaand, $eindFilterPeriodeJaar) {
        $this->setBeginFilterPeriodeJaar($beginFilterPeriodeJaar);
        $this->setEindFilterPeriodeJaar($eindFilterPeriodeJaar);
        $this->setBeginFilterPeriodeMaand($beginFilterPeriodeMaand);
        $this->setEindFilterPeriodeMaand($eindFilterPeriodeMaand);
        $this->setFormulierType(STAT_WERKPLEKINSPECTIE);
        parent::__construct($beginFilterPeriodeMaand, $beginFilterPeriodeJaar, $eindFilterPeriodeMaand, $eindFilterPeriodeJaar);

        $this->selectDBGegevens();
    }

    public function getWPIPlichtig() {
        return $this->WPIPlichtig;
    }

    public function setWPIPlichtig($WPIPlichtig) {
        $this->WPIPlichtig = $WPIPlichtig;
    }

    /**
     * vult de database met relevante gegevens
     * @name selectDBGegevens
     * @since Version 1.0
     * @return void
     */
    public function selectDBGegevens() {
        if (!$this->lagenLijst == null) {
            $maxloop = count($this->lagenLijst);
            for ($nummer = 0; $nummer < $maxloop; $nummer++) {
                $laag = $this->lagenLijst[$nummer];
                $laag->setFormulierType(STAT_WERKPLEKINSPECTIE);

                if (!$laag->bedrijfsonderdeelLijst == null) {
                    $maxloop2 = count($this->lagenLijst[$nummer]->bedrijfsonderdeelLijst);
                    for ($nummer2 = 0; $nummer2 < $maxloop2; $nummer2++) {
                        $bedrijfsOnderdeel = $laag->bedrijfsonderdeelLijst[$nummer2];
                        $bedrijfsOnderdeel->setFormulierType(STAT_WERKPLEKINSPECTIE);

                        if (!$bedrijfsOnderdeel->gebruikersLijst == null) {
                            $maxloop3 = count($bedrijfsOnderdeel->gebruikersLijst);
                            for ($nummer3 = 0; $nummer3 < $maxloop3; $nummer3++) {
                                $persoon = $bedrijfsOnderdeel->getGebruikersLijst();
                                $persoon[$nummer3]->setFormulierType(STAT_WERKPLEKINSPECTIE);
                                $this->WPIPlichtig += $persoon[$nummer3]->getWPIplichtig();
                            }
                        }
                    }
                }
            }
        }
    }

}

?>